perm filename WAVE.FAI[RST,LCS] blob
sn#222541 filedate 1976-08-14 generic text, type C, neo UTF8
COMMENT ⊗ VALID 00008 PAGES
C REC PAGE DESCRIPTION
C00001 00001
C00002 00002 TITLE WAVE
C00004 00003 L101: SETOM X#
C00006 00004 L6: JSA 16,DPYOUT
C00008 00005 ININT: SETZ
C00009 00006 GNAME: SETZM FILEXT+1
C00010 00007 GETNAM: MOVEI A,
C00011 00008 DSKIN: MOVE NN,[INPO: IOWD =1024,WD]
C00012 ENDMK
C⊗;
TITLE WAVE
EXTERNAL TYPLOC,DDCLR,DPYSET
EXTERNAL DPYOUT,AVECT,ALINE
A←1 ↔ B←2 ↔ C←3 ↔ K←4 ↔ NN←7 ↔ LPDL←←69 ↔ P←17
BEG: MOVE P,[-LPDL,,PDL-1]
JSA 16,TYPLOC
[-=260]
[-=512]
TRYOV: CLRBFI
OUTSTR [ASCIZ/ TYPE FILE NAME(<CR>=TEST.SND) /]
PUSHJ P,GNAME
OPEN 11,[17↔'DSK '↔0]
JRST 4,.
LOOKUP 11,FILNAM
JRST TRYOV
HRRZI A,=512
HRRZM A,INC#
L8: CLRBFI
OUTSTR [ASCIZ/ TYPE NUM OF SAMPLES(<CR>=512) /]
HRRZI A,=1024
HRRZM A,NZ#
INCHWL B
PUSHJ P,ININT
CAILE =3072 ;WON'T DISPLAY MORE THAN 3072 SMPLS AT A TIME.
MOVEI =3072
MOVEM J#
SETZ
INCHRS B
CAIA
PUSHJ P,ININT
IDIVI 3
MOVEM NY#
SKIPE B,J
MOVEM B,INC
SETZM JCNT#
HRRZI A,1
HRRZM A,KCNT#
SETZM JZ#
L11: HRRZI A,1
HRRZM A,L#
MOVE A,INC
MOVEM A,LX#
L100: PUSHJ P,DSKIN
; JSA 16,FASTIN
; WD
; [=1024]
HRRZI A,=1024
ADDB A,NZ
CAMGE A,NY
JRST L100
SKIPN NY
JRST L101
SUBI A,=1024
IMULI A,3
MOVEM A,KCNT
SOJ A,
MOVEM A,JCNT
L101: SETOM X#
SETZ K,
MOVE A,[POINT 12,WD]
L2: SKIPE WD(K)
SETZM X
ILDB 0,A
HRRZM 0,FW(K)
ILDB 0,A
HRRZM 0,FW+1(K)
ILDB 0,A
HRRZM 0,FW+2(K)
ADDI K,3
CAIGE K,=3072
JRST L2
; SKIPE X ADD THIS TO RESTART ON ZEROS
; JRST L8
L1: JSA 16,DDCLR
MOVE A,[=1000.0]
FLTR B,INC
FDVR A,B
MOVEM A,X
L40: JSA 16,DPYSET
[1]
DP
[=4000]
JSA 16,ALINE
NFHD
[=409]
NFHD
[-=409]
JSA 16,ALINE
[=500]
ZER
NFHD
ZER
L10: MOVE A,[-=500.0]
MOVEM A,Z#
MOVE K,L
L4: AOS JCNT
MOVE A,FW-1(K)
CAILE A,=2047
SUBI A,=4096
MOVEM A,JZ
IDIVI A,5
MOVEM A,JY#
KIFIX A,Z
MOVEM A,JX#
JSA 16,AVECT
JX
JY
CAIN K,=3072
JRST L6
MOVE A,X
FADM A,Z
CAMGE K,LX
AOJA K,L4
L6: JSA 16,DPYOUT
[1]
L31: OUTSTR [ASCIZ/ SMPL /]
MOVE KCNT
PUSHJ P,OUTINT
OUTSTR [ASCIZ/ TO /]
MOVE JCNT
PUSHJ P,OUTINT
OUTSTR [ASCIZ/
/]
L55: MOVE A,J
AOJ A,
JUMPE A,L7
AOJ A,
JUMPE A,L12
L5: CLRBFI
INCHWL B
PUSHJ P,ININT
MOVEM J
SETZ
INCHRS B
CAIA
PUSHJ P,ININT
MOVEM NX
HRRZI A,=3072
CAMGE A,J
MOVEM A,J
L77: SKIPLE A,J
MOVEM A,INC
ADDI A,2
JUMPGE A,L7
JRST L9
L12: MOVE A,L
ADD A,NX#
MOVEM A,LX
MOVE A,KCNT
ADD A,NX
SOJ A,
MOVEM A,JCNT
JRST L7
L9: MOVE A,L
ADD A,J
MOVEM A,LX
MOVE A,KCNT
ADD A,J
SOJ A,
MOVEM A,JCNT
SKIPGE LX
SETZM LX
L7: MOVE A,LX
AOJ A,
MOVEM A,L
MOVE A,INC
ADDM A,LX
MOVE A,JCNT
AOJ A,
MOVEM A,KCNT
MOVE A,L
CAILE A,=3072
JRST L11
JRST L1
ININT: SETZ
SETZ C,
CAIN B,"-"
JRST MIN
RECUR: CAIL B,60
CAILE B,71
JRST SYNE
IMULI =10
ADDI -60(B)
GTCHR: INCHRS B
CAIA
JRST RECUR
SYNE: SKIPGE C
MOVNS
POPJ P,
MIN: SETO C,
JRST GTCHR
OUTINT: HRRZI B,16
JUMPE OUTZ
IDIVI =10
ADDI A,60
HRRZM A,BLK1(B)
SOJGE B,OUTINT+1
OCHR: OUTCHR BLK1+1(B)
CAIGE B,15
AOJA B,OCHR
POPJ P,
OUTZ: CAIL B,16
HRLZI B,300000
JRST OCHR
INA5: SETZ A,
HRLZI C,700
INCHWL
CAIE 15
CAIN 12
POPJ P,
IDPB C
TRNN A,177
INCHRS
POPJ P,
JRST .-7
GNAME: SETZM FILEXT+1
SETZM FILPPN
MOVE A,['SND ']
MOVEM A,FILEXT
PUSHJ P,GETNAM
SKIPN A
MOVE A,['TEST ']
GEXT: MOVEM A,FILNAM
CAIE C,"."
JRST NOEXTN
PUSHJ P,GETNAM
MOVEM A,FILEXT
NOEXTN: CAIE C,"["
JRST FFDX
PUSHJ P,GETP
HRLZM A,FILPPN
PUSHJ P,GETP
HRRM A,FILPPN
FFDX: INCHRW C
CAIE C,12
JRST FFDX
POPJ P,
GETNAM: MOVEI A,
MOVE B,[440600,,A]
GETNML: PUSHJ P,RCH
POPJ P,
SUBI C,40
TLNE B,770000
IDPB C,B
JRST GETNML
GETP: MOVEI A,
GETPL: PUSHJ P,RCH
POPJ P,
TRNE A,770000
JRST GETPL
LSH A,6
ADDI A,-40(C)
JRST GETPL
RCH: INCHWL C
CAIN C,42
JRST RCHQ
CAIE C,11
CAIN C," "
JRST RCH
CAIE C,"."
CAIN C,","
POPJ P,
CAIE C,"["
CAIN C,"]"
POPJ P,
RCHQR: CAIGE C,40
POPJ P,
CAIL C,"a"
CAILE C,"z"
CAIA
SUBI C,40
POPJ1: AOS (P)
POPJ P,
RCHQ: INCHWL C
JRST RCHQR
DSKIN: MOVE NN,[INPO: IOWD =1024,WD]
MOVEI NN+1,0
INPUT 11,NN
POPJ P,
FILNAM: 0
FILEXT: 0
0
FILPPN: 0
BLK1: BLOCK 17
DP: 0
WD: BLOCK =1024
FW: BLOCK =1024*3
NFHD: -=500
ZER: 0
PDL: BLOCK LPDL
END BEG